import mountElement from "./mountElement";
import updateComponent from "./updateComponent";

export default function diffComponent(vDom, oldComponent, oldDom, container) {
//
  if (isSameComponent(vDom, oldComponent)) {
    // 更新操作
    console.log('same');
    updateComponent(vDom, oldComponent, oldDom, container)
  } else {
    // 不是同一个组件,直接将组件内容展示在页面中
    // 这里为mountElement方法新增了一个参数oldDom
    // 作用是将dom对象插入到页面前, 将已经存在的dom对象删除
    // 否则无论是旧dom还是新dom都会显示在页面里面
    console.log('not same');
    mountElement(vDom, container, oldDom);
  }
}


// 判断是不是同一个组件
function isSameComponent(vDom, oldComponent) {
  return oldComponent && vDom.type === oldComponent.constructor;
}
